﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Objects;
using Tizer.Core.Enums;
using Tizer.Utilities;

namespace Tizer.Core.Repository
{
    public class ImageRepository : BaseRepository<Image>
    {
        public ImageRepository(ObjectContext context) : base(context) { }

        public ImageRepository() { }

        /// <summary>
        /// Создает новый объект изображения в БД
        /// </summary>
        /// <param name="imageContent">Изображение в виде массива байт</param>
        /// <param name="imageType">Тип изображения</param>
        /// <param name="accaunt">Аккаунт, которому принадлежит изображение</param>
        /// <param name="name">Название изображение</param>
        /// <param name="desctiption">Описание изображения</param>
        /// <returns>Объект изображения в БД</returns>
        public Image Create(byte[] imageContent, ImageType imageType, Account accaunt, string name = null, string desctiption = null)
        {
            var image = new Image
            {
                ImageContent = imageContent,
                Date = DateTime.Now,
                ImageType = imageType,
                Name = name,
                Description = desctiption
            };
            Add(image);
            return image;
        }

        /// <summary>
        /// Получить сущность по Id
        /// </summary>
        /// <returns>Сущность</returns>
        public Image GetById(int id)
        {
            return ObjectSet.SingleOrDefault(e => e.ID == id);
        }
    }
}
